package Exception;
/**
 * java异常处理机制中的 try catch
 */
public class ExceptionDemo1 {
	public static void main(String[] args) {
		System.out.println("程序开始了");
		/*
		 * 当出现第一个异常后，跳到catch里面，执行完catch里面的内容后，
		 * 直接跳出try，执行后面的程序，而不是try里面的下一条语句。
		 */
		try{
			String str ="a";
			/*
			 * 1.当出现空指针后，jvm创建一个空指针异常的实例 ，将它抛出来
			 * 2.子类catch在前，父类catch在后，良好的程序都会在最后捕获
			 * 一个catch(Exception e){}
			 */
			System.out.println(str.length());
			System.out.println(str.charAt(0));
			System.out.println(Integer.parseInt(str));
		}catch(NullPointerException e){
			System.out.println("出现了一个空指针！");
		}catch(StringIndexOutOfBoundsException e){
			System.out.println("出现了一个字符串下标越界！");
		}catch(Exception e){
			System.out.println("反正就是出了个错！");
		}
		System.out.println("程序结束了");
	}
}
